home *** CD-ROM | disk | FTP | other *** search
/ The Games Machine 80 / XENIATGM80.iso / Goodies / Blood 2 / Source / data.z / SurfaceFragmentFX.h < prev    next >
C/C++ Source or Header  |  1999-04-02  |  3KB  |  94 lines

  1. //**************************************************************************//
  2. //*****        File:        SurfaceFragmentFX.h        ****************************//
  3. //*****        Author:        Andy Mattingly            ****************************//
  4. //*****        Updated:    6-18-98                    ****************************//
  5. //**************************************************************************//
  6.  
  7. #ifndef    _SURFACEFRAGMENTFX_H_
  8. #define    _SURFACEFRAGMENTFX_H_
  9.  
  10. //**************************************************************************//
  11.  
  12. #include "SpecialFX.h"
  13.  
  14. //**************************************************************************//
  15.  
  16. #define        SURFFRAG_WOOD        0
  17. #define        SURFFRAG_STONE        1
  18. #define        SURFFRAG_FIRE        2
  19.  
  20. //**************************************************************************//
  21.  
  22. struct SURFFRAGCREATESTRUCT : public SFXCREATESTRUCT
  23. {
  24.     SURFFRAGCREATESTRUCT::SURFFRAGCREATESTRUCT();
  25.  
  26.     DVector        vNormal;        // Normal of the wall where impact occured
  27.     DFLOAT        fOffset;        // Offset from the wall
  28.     DVector        vPos;            // Initial position of the sprites
  29.     DVector        vVel;            // Initial velocity of the sprites
  30.     DVector        vDecel;            // Decelleration of the velocity
  31.     DVector        vGravity;        // Gravity to be applyed
  32.     DFLOAT        fDuration;        // How long to display the sprite
  33.  
  34.     DVector        vScale;            // Scale of the sprite
  35.     DRotation    rRotation;        // Rotation of the sprite
  36.     DBOOL        nType;            // 0 = Wood, 1 = Stone, 2 = Fire, etc, etc,
  37.  
  38.     DBOOL        bFade;            // Fade the sprite?
  39.     DBOOL        bRotate;        // Should the sprite randomly rotate?
  40.     DBOOL        bMove;            // Move the sprite with its vel, decel, and gravity?
  41. };
  42.  
  43. //**************************************************************************//
  44.  
  45. inline SURFFRAGCREATESTRUCT::SURFFRAGCREATESTRUCT()
  46. {
  47.     memset(this, 0, sizeof(SURFFRAGCREATESTRUCT));
  48. }
  49.  
  50. //**************************************************************************//
  51.  
  52. class CSurfaceFragmentFX : public CSpecialFX
  53. {
  54.     public :
  55.  
  56.         CSurfaceFragmentFX();
  57.         virtual ~CSurfaceFragmentFX();
  58.  
  59.         virtual DBOOL Init(SFXCREATESTRUCT* psfxCreateStruct);
  60.         virtual DBOOL CreateObject(CClientDE* pClientDE);
  61.         virtual DBOOL Update();
  62.  
  63.     private :
  64.  
  65.         DBOOL    m_bFirstUpdate;
  66.         DBOOL    m_bFade;
  67.         DBOOL    m_bRotate;
  68.         DBOOL    m_bMove;
  69.  
  70.         float    red, green, blue, alpha;
  71.  
  72.         DVector        m_vNormal;            // Normal of the wall where impact occured
  73.         DFLOAT        m_fOffset;            // Offset from the wall
  74.         DVector        m_vPos;                // Normal of the surface we impacted on or direction
  75.         DVector        m_vVel;                // Initial velocity of the sprite
  76.         DVector        m_vDecel;            // Decelleration of the velocity
  77.         DVector        m_vGravity;            // Gravity to apply to the sprite
  78.  
  79.         DVector        m_vScale;            // Scale of the sprite
  80.         DRotation    m_rRotation;        // Rotation of the sprite
  81.         DFLOAT        m_fPitchVel;        // Rotation variables
  82.         DFLOAT        m_fYawVel;
  83.         DFLOAT        m_fPitch;
  84.         DFLOAT        m_fYaw;
  85.  
  86.         DFLOAT        m_fDuration;        // how long should we stay alive?
  87.         DFLOAT        m_fStartTime;        // when were we created?
  88.  
  89.         DBOOL        m_nType;            // 0 for 64x64 or 1 for 128x128
  90. };
  91.  
  92. //**************************************************************************//
  93.  
  94. #endif